/** ============================================================================================== **/
/**						GESTIONE DEI PESCI										 				   **/	
/** ============================================================================================== **/
//Servizio
BootApplication.service("DetFishService",
				    ['configuration', '$rootScope', 'ngDialog', 'DateService', 'log', 'DialogService', '$translate', '$http', '$q',
			 function(configuration ,  $rootScope ,  ngDialog ,  DateService,   log ,  DialogService ,  $translate ,  $http ,  $q) {
	  
	/**
	 * Questo metodo aggiorna la lista dei grafici da visualizzare in base ai filtri attivi
	 **/
	this.getFishList = function( _filtriAttivi, _displayProp ) {
		 _searchModel = {};
		 _searchModel.iDisplayStart		= _displayProp.displayStart;
		 _searchModel.iDisplayLength	= _displayProp.displayLength;
		 _searchModel.paginate			= _displayProp.paginate;
		 if ( _filtriAttivi!=null) {
			 _searchModel.commonName 		= _filtriAttivi.commonName;
			 _searchModel.scientificName 	= _filtriAttivi.scientificName;
			 _searchModel.origine 			= _filtriAttivi.origine;
			 _searchModel.origineZone 		= _filtriAttivi.origineZone;
			 _searchModel.acquariumType 	= _filtriAttivi.acquariumType;
			 _searchModel.careLevel 		= _filtriAttivi.careLevel;
			 _searchModel.diet 				= _filtriAttivi.diet;
			 _searchModel.tankLevel 		= _filtriAttivi.tankLevel;
			 _searchModel.temperament 		= _filtriAttivi.temperament;
			 _searchModel.waterFlow 		= _filtriAttivi.waterFlow;
			 _searchModel.phMax 			= _filtriAttivi.phMax;
			 _searchModel.phMin 			= _filtriAttivi.phMin;
			 _searchModel.ghMax 			= _filtriAttivi.ghMax;
			 _searchModel.ghMin 			= _filtriAttivi.ghMin;
			 _searchModel.temperatureMax 	= _filtriAttivi.temperatureMax;
			 _searchModel.temperatureMin 	= _filtriAttivi.temperatureMin;
			 _searchModel.excludeFish		= _filtriAttivi.excludeFish;
		 }
		 var _defer = $q.defer();
		 var request = {
				  method	: 'POST'
				  ,url		: configuration.getParam("Constants").ContextPath + "fishCtrl/searchFish.pjson"
				  ,data  	: _searchModel
		 };
  	  	 $http(request).then(function(response){_defer.resolve(response);}, function(errorResponse){_defer.resolve(null);});
  	  	 return _defer.promise;
	 }
	
	/**
	 * Questo metodo salva la nuova vasca
	 **/
	this.saveLivestock = function( _tankId, fish ) {
		_livestockModel = {};
		if ( _tankId!=undefined )					_livestockModel.tankId 	= _tankId;
		if (fish!=undefined && fish.id!=null )		_livestockModel.id 		= fish.id;
		_livestockModel.type = 'Fish';
		 
		var _defer = $q.defer();
		var request = {
				method	: 'POST'
				,url		: configuration.getParam("Constants").ContextPath + "tankCtrl/saveLivestock.pjson"
				,data  	: _livestockModel
		};
		$http(request).then(function(response){_defer.resolve(response);}, function(errorResponse){_defer.resolve(null);});
		return _defer.promise;
	}
}]);